package cn.tedu.cqhotel.mapper;

import cn.tedu.cqhotel.pojo.entity.Room;
import cn.tedu.cqhotel.pojo.vo.RoomListItemVO;
import cn.tedu.cqhotel.pojo.vo.RoomStandardVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.math.BigDecimal;
import java.util.List;

/**
 * 房间基本信息的mapper接口
 *
 * @author zhouyucheng
 */
@Repository
public interface RoomMapper {

    /**
     * 新增房间信息
     * @param room
     * @return
     */
    int insert(Room room);

    /**
     * 根据房间id删除房间信息
     * @param roomId
     * @return
     */
    int deleteByRoomId(Integer roomId);

    /**
     * 根据房间id修改房间信息
     * @param room 封装了要修改的房间id,及要修改字段的值
     * @return
     */
    int updateByRoomId(Room room);

    /**
     * 根据房间编号获取房间详情
     * @param roomId
     * @return
     */
    RoomStandardVO getStandardByRoomId(Integer roomId);

    /**
     * 查询房间列表
     * @return
     */
    List<RoomListItemVO> list();

    /**
     * 根据房间是否入住查询房间信息列表
     * @param isUsed
     * @return
     */
    List<RoomListItemVO> listByIsUsed(Integer isUsed);

    /**
     * 根据房间可住人数类型和房间类型查询房间信息列表
     * @param version 房间可住人数类型,房间类型
     * @param type
     * @return
     */
    List<RoomListItemVO> listByVersionAndType(@Param("version") Integer version, @Param("type") Integer type);


    /**
     * 根据房间单价查询房间信息列表
     * @param price
     * @return
     */
    List<RoomListItemVO> listByPrice(BigDecimal price);







}
